package com.example.shop_2302.utils

import android.content.Context
import com.alibaba.android.arouter.facade.Postcard
import com.alibaba.android.arouter.facade.annotation.Interceptor
import com.alibaba.android.arouter.facade.callback.InterceptorCallback
import com.alibaba.android.arouter.facade.template.IInterceptor
import com.alibaba.android.arouter.launcher.ARouter
import com.blankj.utilcode.util.SPUtils
import com.example.base.net.Cons

/**
 * 登录拦截器---ARouter 判断是否需要登录 以及是否已经登录///默认运行的界面不参与这个方法
 */

class LoginInterceptor :IInterceptor{
    override fun init(context: Context?) {
        //初始化，一般不执行操作
    }

    override fun process(postcard: Postcard?, callback: InterceptorCallback?) {
        //所有的页面跳转（ARouter）均会走这个方法，如果里面不写内容，会直接卡住不动
        //是否需要登录  //默认主页相关的所有界面均需要登录  （注册页面、登录界面、富文本相关 不需要登录）
        //是否已经登录
        //不需要登录的界面  以及已经登录了的情况，是可以直接跳转到相应界面的，，，，，，其他情况需要跳转到登录页面
        if("/app/LoginCodeActivity".equals(postcard?.path)||"/app/WebViewActivity".equals(postcard?.path)||SPUtils.getInstance().getString(Cons.SP_TOKEN).isNotEmpty()){
            //跳转到对应界面
            callback?.onContinue(postcard)
        }else{
            //其他页面需要先登录
            ARouter.getInstance().build("/app/LoginCodeActivity").navigation()
        }
    }
}